Contents
<<
>>
Writing Programs for DOS
Several major simplifications are made when we
limit consideration to assembly programs that will run under MS-DOS. First, even
in Windows 95, DOS programs run in 16-bit Virtual 8086 mode (on older machines,
DOS runs in Real mode, which is the same for most practical purposes). This
means that we don't have to worry about the extra complications of 32-bit
registers and addressing modes (of course, people developing large applications
will find many advantages to using the more advanced 32-bit modes, but almost no
one developing large applications should be doing more than small pieces of the
application in assembly language). Second, under DOS we can write .COM
programs, which have a simpler structure than .EXE programs; this
allows us to ignore most of the issues of using segment registers, at the cost
of limiting the size of program text plus initialized data to a maximum of 64K.
Finally, programs under DOS can make use of numerous built-in subroutines
(accessed through software interrupts) from DOS and the BIOS (Basic I/O System)
to perform common I/O tasks. Performing I/O in a Windows program is
substantially more complex, even in C; writing a simple "Hello World'' program
in assembly language to run under Windows involves an enormous amount of added
complexity.
The
Structure of a .COM File
DOS
Interrupts